<?php

namespace App\Http\Controllers\Admin;

use App\Models\Admin\AdminPermission;
use App\Models\Admin\AdminRole;
use App\Models\Admin\AdminRolePermission;
use App\Models\RTresult;
use App\Tool\ArrayPageTrait;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class AdminPermissionController extends Controller
{
    //现在视图中显示后台权限表
    public function index()
    {
        //查询所有的权限
        $permissions = AdminPermission::paginate(5);
//        //dd($permissions);
        //调用自定义的函数，生成树装的结构
//        $permissions = (object)getTree($permissions);
        //分页
        //权限的列表
        return view('admin/admin_permission')
            ->with('permissions', $permissions);
    }
    //is_menu{是否是菜单}的ajax
    public function status(Request $request)
    {
        //调用状态值

        $rt_result = new RTresult();
        //判断是否  显示 或者 禁用
        $is_menu = $request->is_menu;
        //获取  话题表 的ID
        $permissions_id = $request->permissions_id;
        if ($is_menu == 1) {
            $is_menu = 0;
        } else {
            $is_menu = 1;
        }
        //根据  点击所在的ID  改变是否显示或者禁用
        $res = AdminPermission::find($permissions_id)->update(['is_menu' => $is_menu]);

        if ($res) {
            $rt_result->status = true;
            $rt_result->message = $is_menu;
            return $rt_result->toJson();
        }
    }

    //添加权限的表单
    public function create()
    {
        //将顶级的保单查询出来
        $permissions = AdminPermission::where('parent_id', 0)->get();
        //添加权限   的add 视图
        return view('admin/admin_permission_create')->with('permissions', $permissions);
    }

    //添加权限  提交数据库
    public function store(Request $request)
    {

        $result = AdminPermission::create($request->all());
        if ($result) {
            //返回到权限的列表
            return redirect('admin/admin_permission');
        }
    }
    //修改权限的表单
    public function edit($id){
        //找出要修改的数据的ID
        $permissions = AdminPermission::find($id);
        //将找到的ID的一条数据回填
        return view('admin/admin_permission_edit',[
            'permissions'=>$permissions
        ]);

    }
    //修改权限
    public function update(Request $request,$id){
        //找出要修改的数据的ID
        $permissions = AdminPermission::find($id);
        //将数据更新
        $permissions->name=$request->get('name');
        $permissions->display_name=$request->get('display_name');
        $permissions->description=$request->get('description');
        //将数据保存在数据库
        $permissions->save();
        return redirect('admin/admin_permission');
    }
    //删除权限
    public function destroy($id){

        $permissions = AdminPermission::find($id);

        if($permissions->delete()){

            return redirect('admin/admin_permission');
        }else{
            return redirect('admin/admin_permission');
        }
    }
    public function hasPermission(Request $request){

        $id = $request->get('permission_id');

        $res = AdminPermission::where('parent_id', $id)->get()->toArray();


        if ($res != null) {
            return 1;
        } else {
            return 0;
        }
    }


}
